package com.lq.mode.singleton;

/**
 * @program: singleton-mode
 * @description: 懒汉单例模式双锁，使用静态内部类实现,效率更高
 * @author: LQ
 * @create: 2019-11-07 22:57
 * 单例模式
 */

public class SingletonMode5 {
    /**
     * 使用静态内部类来初始化
     * jvm保证加载类的时候互斥,保证了线程安全
     */
    private static class SingletonFactory {
        private static SingletonMode5 mode = new SingletonMode5();
    }

    /**
     * 单例模式,构造方法私有化
     */
    private SingletonMode5() {
    }

    /**
     * 调用的时候,保证了只执行一次,并且已经初始化好
     *
     * @return
     */
    public static SingletonMode5 getInstance() {
        return SingletonFactory.mode;
    }
}